Current methods for transitioning a microcomputer into and out of a sleep-mode rely heavily on the microcomputer's internal circuitry to internally switch resources on and off as needed to eliminate power dissipation and prolong battery life. Firmware that manages microcomputer sleeping is frequently the most demanding and problematic part of system coding. Interrupt management and reliably placing the microcomputer into sleep and reliably bringing the microcomputer out of sleep can be difficult, especially as these microcomputers become more and more advanced. Sleep power dissipation is low, but completely turning the microcomputer's power off makes it much lower.
Smaller and lower performance microcomputers can effectively reduce power dissipation to acceptable levels for many applications that require long battery life, but as remote battery operated systems become the eyes and ears of the internee's cloud computers, these remote battery operated systems most often require microcomputers with the most advanced state of the art performance. Typically, these microcomputers are very fast and have large internal volatile and non-volatile memories along with a vast array of internal peripherals. As these microcomputers perform faster and faster and their internal resources grow they demand more power, even in sleeping modes.
What is needed is a way to put a microcomputer in a sleep-mode by completely powering it off.